
import pandas as pd

#读取文件
ks1=pd.read_excel(r'E:\每日\周度\10.4\快手1.xlsx',dtype={'商品ID':str})
ks1['平台']='快手1'
ks3=pd.read_excel(r'E:\每日\周度\10.4\快手3.xlsx',dtype={'商品ID':str})
ks3['平台']='快手3'
ks=pd.concat([ks1,ks3])

#筛选状态
ks=ks[(
       ( ks['订单状态']=="待发货" ) |
       ( ks['订单状态']=="已发货")  |
       ( ks['订单状态']=="已收货" ) |
       ( ks['订单状态']=="部分发货" )|
       ( ks['订单状态']=="交易成功" )
      )&( ks['售后状态'] != "退款成功")
]

ks['实付款']=ks['实付款'].map(lambda x: float(str(x).replace('¥',''))) ##去除￥符号

# 过滤掉团长昵称为空的订单
# ks = ks[ks['团长昵称'].notna() & (ks['团长昵称'] != '')]

# 计算团长服务费：土豆粉3%，其他5%
def calculate_group_leader_fee(product_name, actual_payment):
    """
    根据商品名称和实付款计算团长服务费
    :param product_name: 商品名称
    :param actual_payment: 实付款
    :return: 团长服务费
    """
    if '土豆粉' in product_name:
        return actual_payment * 0.03
    else:
        return actual_payment * 0.05

ks['团长服务费'] = list(map(calculate_group_leader_fee, ks['商品名称'], ks['实付款']))


ks_date=ks.loc[:,['商品ID','商品名称','商品规格','渠道','SKU编码','成交数量','实付款',
                  '预估推广佣金','团长服务费','订单状态','售后状态','订单创建时间','平台']
]


def classify_rice_cooker_gift(product_name):
    """
    根据商品名称判断是否为电煮锅赠品
    :param product_name: 商品名称
    :return: '电煮锅赠品' 或 '无'
    """
    if '电煮锅' in product_name:
        return '电煮锅赠品'
    else:
        return '无'

ks_date['电煮锅'] = list(map(classify_rice_cooker_gift, ks_date['商品名称']))

def classify_promotion_account(product_name, channel):
    """
    根据商品名称和渠道对订单进行投放账户分类
    :param product_name: 商品名称
    :param channel: 渠道信息
    :return: 投放账户类型
    """
    if ('z5' in product_name) or ('dsp' in product_name):
        return '自播'
    elif ('lxx' in product_name) or ('lcc' in product_name):
        return '自有投流'
    elif 'bd' in product_name:
        return '自有投流'
    elif channel == '分销':
        return '达人分发'
    else:
        return '自然单'

ks_date['投流账户'] = list(map(classify_promotion_account,
                              list(ks_date['商品名称']),
                              list(ks_date['渠道'])))

ks_=(ks_date.groupby([ks_date['平台'],
                     ks_date['投流账户'],
                     ks_date['商品ID'],
                     ks_date['SKU编码'],
                     ks_date['电煮锅']],as_index=False
                    )
            .agg(
                 订单实付=('实付款','sum'),
                 商品数量=('成交数量','sum'),
                 佣金=('预估推广佣金','sum'),
                 团长服务费=('团长服务费','sum')
                 )
     )

ks_.to_excel(r'E:\每日\周度\10.4结果\周度利润测算明细_快手.xlsx',index=False)



# 需求1
# 过滤无效订单
# 去掉 团长昵称 为空的订单记录
# 团长服务费计算规则
# 商品名称包含"土豆粉"的订单：团长服务费 = 实付款 × 3%
# 其他商品订单：团长服务费 = 实付款 × 5%

# 注意点2
# 这里的数据是一周的数据

# 注意点3
# 订单实付 包含 0 的订单